﻿using Newtonsoft.Json;
using System.Collections.Generic;

namespace XUCore.WeChat.Enterprise.Apis.Group.Statistic
{
    /// <summary>
    /// 此接口查询的时间范围为 [day_begin_time, day_end_time]，前后均为闭区间（即包含day_end_time当天的数据），支持的最大查询跨度为30天；<para/>
    /// 用户最多可获取最近180天内的数据（超过180天企业微信将不再存储）；<para/>
    /// 当传入的时间不为0点时，会向下取整，如传入1554296400(Wed Apr 3 21:00:00 CST 2019)会被自动转换为1554220800（Wed Apr 3 00:00:00 CST 2019）;
    /// </summary>
    public class GroupStatisticInput
    {
        /// <summary>
        /// 起始日期的时间戳，填当天的0时0分0秒（否则系统自动处理为当天的0分0秒）。取值范围：昨天至前180天。必填
        /// </summary>
        [JsonProperty("day_begin_time")]
        public long day_begin_time { get; set; }
        /// <summary>
        /// 结束日期的时间戳，填当天的0时0分0秒（否则系统自动处理为当天的0分0秒）。取值范围：昨天至前180天。<para/>
        /// 如果不填，默认同 day_begin_time（即默认取一天的数据）
        /// </summary>
        [JsonProperty("day_end_time")]
        public long day_end_time { get; set; }

        /// <summary>
        /// 群主过滤。必填<para/>
        /// 如果不填，表示获取应用可见范围内全部群主的数据（但是不建议这么用，如果可见范围人数超过1000人，为了防止数据包过大，会报错 81017）
        /// </summary>
        [JsonProperty("owner_filter")]
        public GroupStatisticOwnerFilter owner_filter { get; set; }

        /// <summary>
        /// 排序方式。<para/>
        /// 1 - 新增群的数量<para/>
        /// 2 - 群总数<para/>
        /// 3 - 新增群人数<para/>
        /// 4 - 群总人数<para/>
        /// 默认为1
        /// </summary>
        [JsonProperty("order_by")]
        public int order_by { get; set; }
        /// <summary>
        /// 是否升序。0-否；1-是。默认降序
        /// </summary>
        [JsonProperty("order_asc")]
        public int order_asc { get; set; }
        /// <summary>
        /// 分页，偏移量, 默认为0
        /// </summary>
        [JsonProperty("offset")]
        public int offset { get; set; }
        /// <summary>
        /// 分页，预期请求的数据量，默认为500，取值范围 1 ~ 1000
        /// </summary>
        [JsonProperty("limit")]
        public int limit { get; set; }
    }
    public class GroupStatisticOwnerFilter
    {
        /// <summary>
        /// 群主ID列表。最多100个。必填
        /// </summary>
        [JsonProperty("userid_list")]
        public List<string> userid_list { get; set; }

    }
}